package com.yupi.yuoj.model.vo;

import com.yupi.yuoj.model.entity.ContentComment;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import lombok.Data;
import org.springframework.beans.BeanUtils;

/**
 * 内容评论视图
 *
 * @author jingjin
 */
@Data
public class ContentCommentVO implements Serializable {

    /**
     * id
     */
    private Long id;

    /**
     * 内容 id
     */
    private Long contentId;

    /**
     * 评论内容
     */
    private String content;

    /**
     * 父评论 id（用于回复）
     */
    private Long parentId;

    /**
     * 用户 id
     */
    private Long userId;

    /**
     * 点赞数
     */
    private Integer likeNum;

    /**
     * 状态（0-正常, 1-已删除）
     */
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 用户信息
     */
    private UserVO user;

    /**
     * 父评论信息
     */
    private ContentCommentVO parentComment;

    /**
     * 子评论列表
     */
    private List<ContentCommentVO> children;

    /**
     * 是否已点赞
     */
    private Boolean hasLiked;

    /**
     * 包装类转对象
     *
     * @param contentCommentVO
     * @return
     */
    public static ContentComment voToObj(ContentCommentVO contentCommentVO) {
        if (contentCommentVO == null) {
            return null;
        }
        ContentComment contentComment = new ContentComment();
        BeanUtils.copyProperties(contentCommentVO, contentComment);
        return contentComment;
    }

    /**
     * 对象转包装类
     *
     * @param contentComment
     * @return
     */
    public static ContentCommentVO objToVo(ContentComment contentComment) {
        if (contentComment == null) {
            return null;
        }
        ContentCommentVO contentCommentVO = new ContentCommentVO();
        BeanUtils.copyProperties(contentComment, contentCommentVO);
        return contentCommentVO;
    }

    private static final long serialVersionUID = 1L;
}